// config/config.go
package config

import (
	"errors"
	"gorm.io/gorm"
)

type Config struct {
	gorm.Model
	AppID     string
	AppSecret string
}

func LoadConfig(db *gorm.DB) (*Config, error) {
	var cfg Config
	result := db.First(&cfg)
	if result.Error != nil && !errors.Is(result.Error, gorm.ErrRecordNotFound) {
		return &cfg, result.Error
	}
	return &cfg, nil
}

func SaveConfig(db *gorm.DB, cfg *Config) error {
	var existing Config
	if err := db.First(&existing).Error; err != nil {
		if errors.Is(err, gorm.ErrRecordNotFound) {
			// 如果不存在，则创建
			return db.Create(cfg).Error
		}
		return err
	}
	// 存在则更新
	existing.AppID = cfg.AppID
	existing.AppSecret = cfg.AppSecret
	return db.Save(&existing).Error
}
